﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Sheeter.Library.Model;
using Sheeter.Library.Dal;
using Db4objects.Db4o.Config;
using Db4objects.Db4o;

namespace Sheeter.Tools
{
    public partial class FrmMacAntecedentes : Form
    {
        AntecedenteInfo antecedenteInfo;
        List<AntecedenteInfo> lista = new List<AntecedenteInfo>();
        List<AntecedenteInfo> lista2 = AntecedentesMacDal.GetAll();

        public FrmMacAntecedentes()
        {
            InitializeComponent();
        }

        private void FrmMacAntecedentes_Load(object sender, EventArgs e)
        {
            
        }

        private void btnSalvar_Click(object sender, EventArgs e)
        {
            antecedenteInfo = new AntecedenteInfo();
            antecedenteInfo.Nome = txtNome.Text;
            antecedenteInfo.Descricao = txtDescricao.Text;
            //
            if (AntecedentesMacDal.Insert(antecedenteInfo))
                MessageBox.Show("Antecedente cadastrado com sucesso!");
            else
                MessageBox.Show("Erro ao cadastrar antecedente...");
            //
            ClearInfo();
            txtNome.Clear();
            txtNome.Focus();
        }

        private void grdNiveis_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            
        }

        private void btnSerialize_Click(object sender, EventArgs e)
        {
            //Stream str = File.Open("Antecedentes.mac", FileMode.Create);
            //Serializer.Serialize<List<AntecedenteInfo>>(str, lista);
        }

        private void grdAntecedente_DoubleClick(object sender, EventArgs e)
        {
            //
        }

        private void txtNome_TextChanged(object sender, EventArgs e)
        {
            if (txtNome.Text.Length > 4)
            {
                foreach (AntecedenteInfo a in lista2)
                {
                    if (a.Nome.Contains(txtNome.Text))
                    {
                        txtNome.Select(txtNome.Text.Length, txtNome.Text.Length);
                        txtDescricao.Text = a.Descricao;
                    }
                }
            }
            else if (txtNome.Text.Length.Equals(0))
            {
                ClearInfo();
            }
            else
            {
                ClearInfo();
            }
        }

        private void ClearInfo()
        {
            txtDescricao.Clear();
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void btnIndexar_Click(object sender, EventArgs e)
        {
            IEmbeddedConfiguration configuration = Db4oEmbedded.NewConfiguration();
            configuration.Common.ObjectClass(typeof(AntecedenteInfo)).ObjectField("Nome").Indexed(true);
        }
    }
}
